import axios from "axios"

import router from "../router/index"

import { ElNotification } from "element-plus";
import { ElMessage } from 'element-plus'
import { useTokenStore } from "../store/token"

const tokenStore = useTokenStore();

// 配置初始化
function init(ax) {


    // 添加拦截器
    // axios.interceptors.request.use(function(config){
    //     return config;
    // },function(error){
    //     ElMessage.error(error);
    //     return Promise.reject(error);
    // })


    // 响应拦截器
    ax.interceptors.response.use(function(response) {
        // console.log(response.data);
        // debugger;

        if(response.data.toString().indexOf("token is expired")!=-1){
            // ElMessage.error("登录已过期，请重新登录");
            tokenStore.setToken("");
            router.push("/login");
            return;
        }
    
        if (response.data.code != 2000) {
            ElMessage.warning(response.data.msg);
        } else {
            if (response.data.msg === "查询成功")
                return response
            ElMessage.success({
                message: response.data.msg,
                duration: 500,
            });
            // ElNotification.success(response.data.msg)
        }
        return response;
    }, function(error) {
        // console.log(router);
        // 没登录权限 则跳转到登录页
        if (error.response.status == 401) {
            ElNotification.warning("需要登录");
            // 清空存储的token 信息
            tokenStore.setToken('')
            router.push("/login")
        } else if (error.response.status != 200) {
            ElNotification.error((error.response) ? error.response.data : "未知错误");
        }
        // ElMessage.error(error);
        return Promise.reject(error);
    })
    return ax
}

// 从这里使用
export const useAxios = (config = {}) => {
    let ax = axios.create(config)
    ax = init(ax);
    return ax;
}